package com.zp.drug.entity.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zp.common.core.entity.BaseEntity;
import com.zp.common.excel.annotation.ExcelDictFormat;
import com.zp.common.excel.convert.ExcelDictConvert;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;


/**
 * 药品出库明细视图对象
 *
 * @author zhang peng
 * @ date 2024-05-23
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ExcelIgnoreUnannotated
public class DrugExportDetailVo extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private String detailId;

    /**
     * 出库主记录id
     */
    @ExcelProperty(value = "出库主记录id")
    private String masterId;

    /**
     * 库存id
     */
    @ExcelProperty(value = "库存id")
    private String stockId;

    /**
     * 序号
     */
    @ExcelProperty(value = "序号")
    private Integer itemNo;

    /**
     * 药品info表id
     */
    @ExcelProperty(value = "药品info表id")
    private String drugInfoId;

    /**
     * 药品编码
     */
    @ExcelProperty(value = "药品编码")
    private String drugCode;

    /**
     * 药品包装数量
     */
    @ExcelProperty(value = "药品包装数量")
    private Integer packageNum;

    /**
     * 药品包装规格
     */
    @ExcelProperty(value = "药品包装规格")
    private String packageSpec;

    /**
     * 药品包装单位
     */
    @ExcelProperty(value = "药品包装单位", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "spec_unit")
    private String packageUnits;

    /**
     * 药品最小规格
     */
    @ExcelProperty(value = "药品最小规格")
    private String minSpec;

    /**
     * 药品最小单位
     */
    @ExcelProperty(value = "药品最小单位", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "spec_unit")
    private String minUnits;

    /**
     * 药品大小包装：1(小包装)；2(大包装)
     */
    @ExcelProperty(value = "药品大小包装：1(小包装)；2(大包装)")
    private String packSize;

    /**
     * 药品批号
     */
    @ExcelProperty(value = "药品批号")
    private String batchNo;

    /**
     * 药品生产日期
     */
    @ExcelProperty(value = "药品生产日期")
    private Date produceDate;

    /**
     * 有效期
     */
    @ExcelProperty(value = "有效期")
    private Date expireDate;

    /**
     * 出库进价
     */
    @ExcelProperty(value = "出库进价")
    private BigDecimal purchasePrice;

    /**
     * 出库零售价
     */
    @ExcelProperty(value = "出库零售价")
    private BigDecimal retailPrice;

    /**
     * 折扣
     */
    @ExcelProperty(value = "折扣")
    private BigDecimal discount;

    /**
     * 出库数量
     */
    @ExcelProperty(value = "出库数量")
    private Integer quantity;

    /**
     * 拆分合并数量
     */
    @ExcelProperty(value = "拆分合并数量")
    private Integer splitQuantity;

    /**
     * 出库后剩余库存量
     */
    @ExcelProperty(value = "出库后剩余库存量")
    private Integer surplusInventory;

    /**
     * 对应的入库主表id
     */
    @ExcelProperty(value = "对应的入库主表id")
    private String importMasterId;

    /**
     * 货位
     */
    @ExcelProperty(value = "货位")
    private String location;

    /**
     * 总库存量
     */
    @ExcelProperty(value = "总库存量")
    private Integer allInventory;

    /**
     * 是否撤销 Y是 N否
     */
    @ExcelProperty(value = "是否撤销 Y是 N否", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_yes_no")
    private String revokeType;

    /**
     * 比例
     */
    @ExcelProperty(value = "比例")
    private BigDecimal proportion;

    /**
     * 机构id
     */
    @ExcelProperty(value = "机构id")
    private String orgId;

    /**
     * 售价(小规格)
     */
    private BigDecimal retailPriceMin;
    /**
     * 进货价(小规格)
     */
    private BigDecimal tradePriceMin;

    /**
     * 药品价格ID
     */
    private String drugPriceId;

    /**
     * 药品名称
     */
    @ExcelProperty(value = "药品名称")
    private String drugName;

    private String firmName;

    private String firmId;

    private String priceId;


}
